xen/arm: arm64: Add cortex-A57 erratum 832075 workaround
authorJulien Grall <julien.grall@arm.com>
Wed, 27 Jul 2016 16:37:10 +0000 (17:37 +0100)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Wed, 3 Aug 2016 19:47:07 +0000 (15:47 -0400)
commitf126ce847d44855fd8883f5118718952add97871
tree1c9a85e737707ac441889e62c1104089fdaa6f46
parented6869d1387d5c6dd336f6fea8404c1ba8a89cbd
xen/arm: arm64: Add cortex-A57 erratum 832075 workaround

The ARM erratum 832075 applies to certain revisions of Cortex-A57, one
of the workarounds is to change device loads into using load-acquire
semantics.

Use the alternative framework to enable the workaround only on affected
cores.

Whilst a guest could trigger the deadlock, it can be broken when the
processor is receiving an interrupt. As the Xen scheduler will always setup
a timer (firing to every 1ms to 300ms depending on the running time
slice) on each processor, the deadlock would last only few milliseconds
and only affects the guest time slice.

Therefore a malicious guest could only hurt itself. Note that all the
guests should implement/enable the workaround for the affected cores.

Signed-off-by: Julien Grall <julien.grall@arm.com>
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
docs/misc/arm/silicon-errata.txt
xen/arch/arm/Kconfig
xen/arch/arm/cpuerrata.c
xen/include/asm-arm/arm64/io.h
xen/include/asm-arm/cpufeature.h
xen/include/asm-arm/processor.h